﻿'''
题目描述
给定一个由若干整数组成的数组nums ，可以在数组内的任意位置进行分割，将该数组分割成两个非空子数组（即左数组和右数组），
分别对子数组求和得到两个值，计算这两个值的差值，请输出所有分割方案中，差值最大的值。
输入描述:
第一行输入数组中元素个数n，1 < n ≤ 100000
第二行输入数字序列，以空格进行分隔，数字取值为4字节整数
输出描述:
输出差值的最大取值

示例1
输入
6
1 -2 3 4 -9 7
输出

10
'''

#输入数组中的元素个数n, 1 <n <= 100000
num_length = int(input())
#输入数字序列，以空格进行分隔，数字取值为4字节整数
num_list = list(map(int,input().split()))

#初始化左右子数组和、最大差值
sum_left = 0    #初始化为0
sum_right = sum(num_list)   #初始化为所有数字和
max_diff = 0

#移动左边界，并更新最大差值
for left in range(num_length - 1):
    sum_left += num_list[left]
    sum_right -= num_list[left]

    #注意窗口差值可能为负，需去绝对值(如果不能用abs则需要导入math包)
    max_diff = max(max_diff,abs(sum_right - sum_left))

#输出最大差值
print(max_diff)




